package com.edu.internship.glabal.constants;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * code is far away from bug with the animal protecting
 *
 * @author lishiquan
 * @description 全局异常处理
 * @date Create in 2019-1-21
 */
@Getter
@AllArgsConstructor
public enum ResultCodeEnum implements ICodeEnum {
    // 返回代码
    SUCCESS("000000", "成功"),
    // A级错误码--A0:系统错误码
    INTERNAL_SERVER_ERROR("A000001", "服务器内部错误"),
    DATABASE_ERROR("A000002", "数据库操作错误"),
    CONNECTION_ERROR("A000003", "网络连接失败"),
    CONVERT_ERROR("A000004", "转换对象异常"),
    // A级错误码--A1:接收参数错误码
    BAD_REQUEST("A100001", "错误的请求参数"),
    MISSING_REQUEST_PARAMETER("A100002", "缺少请求参数"),
    METHOD_NOT_FOUND_PARAMETER("A100003", "未找到请求方法"),
    FIELD_VALIDATE_FAILURE("A100004", "字段校验不通过"),
    // A级错误码--A2:文件类异常错误码
    IO_STREAM_ERROR("A200001", "IO流异常"),
    FILE_CREATE_AND_DELETE_ERROR("A200002", "文件创建或删除异常"),
    DOWNLOAD_FILE_ERROR("A200003", "下载文件异常"),
    UPLOAD_FILE_ERROR("A200004", "上传文件异常"),
    DO_ZIP_FILE_ERROR("A200005", "压缩文件异常"),
    DO_UNZIP_FILE_ERROR("A200006", "解压文件异常"),
    DELETE_DIR_ERROR("A200007", "删除文件夹异常"),
    READ_EXCEL_ERROR("A200008", "读取Excel异常"),
    UPLOAD_EXCEL_TEMPLATE_ERROR("A200009", "上传的模板错误"),
    UPLOAD_EXCEL_CONTENT_IS_EMPTY_ERROR("A200010", "上传文件的内容为空"),
    // B级错误码--请求错误与第三方接口错误
    // B级错误码--B0:请求错误
    HTTP_GET_ERROR("B000001", "HTTP_GET请求失败"),
    HTTP_POST_ERROR("B000002", "HTTP_POST请求失败"),
    // B级错误码--B1:第三方接口错误
    // C级错误码--与业务相关
    // C级错误码--C000:用户名密码相关
    UNAUTHORIZED("C000001", "未认证（签名错误）"),
    VALIDATE_NOT_ACCESS("C000002", "签名校验不通过"),
    LOGIN_ERROR("C000003", "用户名或密码错误"),
    JWT_ERROR("C000004", "令牌解析异常, 请重新登录"),
    PWD_ERROR("C000005", "密码解析出错"),
    PWD_OLD_ERROR("C000006", "输入的原密码不正确"),
    PWD_NEW_ERROR("C000007", "确认密码与新密码不一致"),
    PWD_DISSATISFY_ERROR("C000008", "密码至少1个字母，1个数字和1个特殊字符"),
    RANDOM_CODE_ERROR("C000009", "请勿乱输入用户名进行修改密码"),
    USE_NAME_EN_EXISTS("C000010","用户名已经存在"),
    // C级错误码--C100:通用型相关
    LENGTH_ERROR("C100001", "设置字符串长度不足"),
    FIELD_VALIDATE_NOT_ACCESS_ERROR("C100002", "字段校验不通过"),
    // C级错误码--C101:图片验证码相关
    CREATE_CAPTCHA_ERROR("C100101", "生成验证码错误"),
    VALIDATE_CAPTCHA_ERROR("C100102", "图片验证码输入错误"),
    ACCESS_DENIED_ERROR("C100003", "未获得授权, 不允许访问"),
    // C级错误码--C200:字典校验
    DICT_NAME_EN_EXISTS("C200001", "字典英文名已存在"),
    ;

    private final String code;
    private final String desc;

}
